Bazen çapraz (pivot) bir tabloyu düz bir tabloya dönüştürmeye ihtiyaç duyulur. Bu prosedüre " denir veri düzeltmesi "
LibreOffice Calc programı pivot tabloları "'e dönüştürmek için standart bir işlevselliğe sahip değildir doğru ", ancak ilgili prosedürü kendiniz yazabilirsiniz. Nasıl yapılacağını görelim.
Sorunun özünü daha net anlamak için aşağıdaki resme bakalım. Solda matris şeklinde bir tablomuz var (pivot tablo) ve sağda sütunlu normal bir tablo (düz tablo):
Bir tabloyu genişlettiğinizde, matris tablosundaki sütunların kesişimi olan nitelik-değer çiftini açarsınız ve bunları düz tablodaki düzleştirilmiş sütunlara yeniden yönlendirirsiniz:
Tools - Macros - Edit Macros... menüsünü açın, Module1'yi seçin ve aşağıdaki metni modüle kopyalayın:
Sub UnPivotTable
' moonexcel.com.ua
Dim oBook As Object
Dim oActiveSheet As Object
Dim oSelRange As Object
Dim oNewSheet As Object
Dim i As Long
Dim iTopLabelRowCount As Integer
Dim iSideLabelColCount As Integer
oBook = ThisComponent
oActiveSheet = oBook.CurrentController.ActiveSheet
oSelRange = oBook.CurrentSelection
' Yeni bir sayfa ekle
oBook.Sheets.insertNewByName("UnPivoted Table",0)
oNewSheet = oBook.Sheets(0)
' Başlıkların boyutunu belirleyin
iTopLabelRowCount = InputBox(" Üst başlıkta kaç satır var? ")
iSideLabelColCount = InputBox(" Yan başlıkta kaç sütun var? ")
i = 0
For r = (iTopLabelRowCount + 1) To oSelRange.Rows.Count
For c = (iSideLabelColCount + 1) To oSelRange.Columns.Count
For j = 1 To iSideLabelColCount
oNewSheet.getCellByPosition(j-1, i).Formula = oSelRange.getCellByPosition(j-1, r-1).Formula
Next j
For k = 1 To iTopLabelRowCount
oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, k-1).Formula
Next k
oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, r-1).Formula
i = i + 1
Next c
Next r
End Sub
Ardından, Macro Editor'u kapatın ve LibreOffice Calc'deki çalışma sayfanıza dönün. Üst ve sol başlıklarla birlikte tablonun tamamını seçin ve yeni makromuzu Tools - Macros - Run Macro... menüsü aracılığıyla çalıştırın.
Makro, çalışma kitabınıza yeni bir adlandırılmış sayfa ekleyecektir
Yardımcı programı da kullanabilirsiniz "Özet tablo (Unpivot)" uzantıyı yükleyerek YLC_Utilities.oxt .
Bundan sonra bu yardımcı program LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.